As demand grows for enabling Voice over Internet Protocol (VoIP) in third generation (3G) wireless communication systems, such as the well-known Universal Mobile Telecommunications System (UMTS), service providers need to ensure that speech quality of VoIP in the Packet Switched (PS) domain is comparable to existing Circuit Switched (CS) voice technology while being cognizant of any adverse effects VoIP may have on system capacity.
FIG. 1 depicts a UMTS based wireless communications system 100, internet 105 and a VoIP phone 110. Wireless communications system 100 comprises at least Gateway Gprs Support Node (GGSN) 120, core network 130 and User Equipment (UE) 140. GGSN 120 being an interface between internet 105 and core network 130. Core network 130 includes Mobile Switching Center (MSC) 150, Radio Access Network (RAN) 160, Radio Network Controller (RNC) 170 and Node B 180. It should be noted that alternate network architectures may implement similar functionality.
FIG. 2 depicts a protocol stack 200 used for a VoIP call between VoIP phone 110 and UE 140 in accordance with the prior art. In some system deployments, VoIP phone 110 may be an electronic device that converts a Public Switched Telephone Network (PSTN) call into a VoIP call, or a PSTN or wireless network may have an inter-working function (IWF) or media gateway (MGW) that converts a PSTN call into a VoIP call. The VoIP call being processed in the PS domain of UMTS-based wireless communications system 100. As shown in FIG. 2, protocol stack 200 includes an Adaptive Multi-Rate (AMR) layer 205, a Real Time Protocol/Real Time Control Protocol (RTP/RTCP) layer 210, an User Datagram Protocol/Internet Protocol version 6 (UDP/IPv6) layer 215, a Packet Data Convergence Protocol (PDCP) layer 220, a Radio Link Control (RLC) layer 225, a dedicated channel Medium Access Control (MAC-d) layer 230, and a Physical (PHY) layer 235. AMR layer 205, RTP/RTCP layer 210 and UDP/IPv6 layer 215 being implemented at VoIP phone 110. PDCP layer 220 being implemented at RAN 160. RLC layer 225 and MAC-d layer 230 being implemented at RNC 170. And PHY layer 235 being implemented at Node B 180. Note that although UDP/IPv6 layer 215 is being shown as a single layer, its actual implementation would probably be as two separate UDP and IPv6 layers.
For illustration purposes, suppose speech information is being sent from VoIP phone 110 to UE 140. In such a situation, speech is referred to as being processed down protocol stack 200. At VoIP phone 110, speech is encoded in AMR layer 205 (via an AMR codec) to produce a speech frame 208 having speech bits. The speech bits are divided into three classes according to subjective or perceptual importance. The first class, i.e., class A bits, includes speech bits which are most sensitive to errors. Any error to class A bits typically results in a corrupted speech frame which should not be decoded without applying appropriate error concealment. The second class, i.e., class B bits, includes speech bits which are less sensitive to errors than the class A bits but more sensitive to errors than the third class, i.e., class C bits.
In RTP/RTCP layer 210, one or more speech frames 208 are encapsulated into an RTP packet with an RTP header that indicates a sequence number and a time stamp to aid in playing out the speech frames properly at the receiving end. In UDP/IPv6 layer 215, an IPv6 header and a UDP Lite header is added to the RTP packet to produce an UDP/IPv6 packet 218. That is, the UDP/IPv6 packet comprises a RTP/UDP/IPv6 header and the speech packet, wherein the RTP/UDP/IPv6 header includes the RTP, IPv6 and UDP headers. The IPv6 header includes information indicating an address for use in routing packets across a network. The UDP Lite header includes coverage field information and UDP checksum bits, such as Cyclical Redundancy Check (CRC) bits. The UDP checksum bits provide error detection to the header portion of the UDP/IPv6 packet (i.e., RTP/UDP/IPv6 header) and some or all of the bits in the speech packet. The coverage field information indicates a coverage field or bits in the UDP/IPv6 packet corresponding to the UDP checksum bits. For example, if the UDP checksum bits provide error protection only to the first half of the UDP/IPv6 packet, the coverage information will indicate the first half.
The UDP/IPv6 packet is sent from VoIP phone 110 through internet 105 to GGSN 120. From GGSN 120, the UDP/IPv6 packet is forwarded to core network 130. In core network 130, a Radio Access Bearer (RAB) is established for transporting the UDP/IPv6 packet from the edge of core network 130 to UE 140. The RAB is established using PDCP layer 220, RLC layer 225, MAC-d layer 230 and PHY layer 235. In the PS domain, the RAB includes one Radio Bearer (RB). The RB covers aspects of radio interface transport and physical bearer services for different levels of Quality of Service (QoS) options. The RB is configured by core network 130 to match requirements of services being supported for a user to which the RAB was established. Examples of service requirements include transmit time interval length of delay constraint, channel coding for proper error rates, determining whether to apply a CRC information, etc. The RB is configured through RLC layer 225, MAC-d layer 230 and PHY layer 235.
Upon receipt of the UDP/IPv6 packet by core network 130, the UDP/IPv6 packet is processed by RAN 160, RNC 170 and Node B 180. Specifically, in PDCP layer 220, the RTP/UDP/IPv6 header is compressed to form a compressed header. The output of PDCP layer 220 is a PDCP packet 228 comprising the compressed header and the speech packet. Operating in Unacknowledged Mode (UM), RLC layer 225 determines whether to segment the PDCP packet, concatenate the PDCP packet with another PDCP packet (or part thereof), or do neither segmentation nor concatenation. RLC layer 225 adds a RLC UM header to the unaltered, segmented or concatenated PDCP packet to produce an RLC packet, wherein the RLC UM header includes a sequence number.
In MAC-d layer 230, a transport format is selected depending on the existence of speech or data. The output of MAC-d layer 230 is a MAC-d packet. In PHY layer 235, error detection and/or error protection are added to the MAC-d packet to produce a PHY packet. Error detection being added in the form of PHY checksum bits, which provides error detection to the entire MAC-d packet. Error protection being provided via one or more various techniques, such as convolution coding, turbo coding, rate matching, interleaving, etc. The PHY packet is subsequently further processed, e.g., RF modulated, by Node B 180 for transmission to UE 140. At UE 140, the PHY packet is processed up protocol stack 200, i.e., reverse order, to obtain decoded speech.
In UMTS, PHY layer transport may be through Dedicated CHannel (DCH) or High Speed Data Packet Access/Enhanced Uplink Dedicated CHannel (HSDPA/EUDCH). In the case where PHY layer transport is via DCH, no error detection is performed by UE 140 at PHY layer 235. That is, even if the PHY packet is received with errors, the PHY packet will be processed and sent up protocol stack 200 with the errors. To reduce the error rate, Node B 180 may increase the power at which the PHY packets are transmitted to UE 140. Increasing the transmit power, however, decreases system capacity by reducing overall power available for transmissions to other UEs.
In the case where PHY layer transport is via HSDPA/EUDCH, if no error is detected in the received PHY packet using the PHY checksum bits at UE 140, then UE 140 transmits an acknowledgement (ACK) to Node B 180 indicating that the PHY packet was successfully received. On the other hand, if an error is detected in the PHY packet using the PHY checksum bits, then UE 140 transmits a negative acknowledgement (NACK) to the Node B 180 indicating that the PHY packet was received with errors. Upon receipt of the NACK, Node B 180 retransmits the PHY packet to UE 140. This process of transmitting a NACK and retransmitting the PHY packet will continue until either an error free PHY packet is received by UE 140, or a maximum allowable numbers of retransmissions have been met or exceeded.
Retransmissions are undesirable for at least two reasons. First, retransmissions utilizes transmit power which reduces the amount of overall transmit power available for transmissions to other UEs, thereby reducing system capacity. Second, retransmissions introduce delay between the reception of the speech packets (or PHY packets) which adversely affects speech quality. To reduce the number of retransmissions, higher power levels may be used for initial transmissions (and/or retransmissions) such that a low error rate can be achieved. However, using higher power levels for initial transmissions (and retransmissions) would also reduce the amount of overall transmit power available for transmissions to other UEs, which, in turn, reduces system capacity.
Accordingly, there exists a need for reducing the number of retransmissions and reducing transmit power levels associated with VoIP.